import request from '@/utils/request'
import axios from 'axios'
import config from '@/utils/config'
import loading from 'element-ui'
import qs from 'qs'


// 创建axios实例
const instance = axios.create({
    baseURL: config.baseURL
})

/**
 **************************************************************
 通用模块
 **************************************************************
 */

/**
 * 文件上传接口
 */
export const uploadImg = function (data) {
    return request({
        url: `/api/web/file/upload`,
        method: 'post',
        data
    })
}


/**
 * 获取职务下拉框
 */
export const getDutuies = function () {
    return request({
        url: `/api/web/ba/common/dutuies`,
        method: 'post',
    })
}


/**
 * 获取部门下拉框
 */
export const getDepartments = function () {
    return request({
        url: `/api/web/ba/common/departments`,
        method: 'post',
    })
}

/**
 * 获取籍贯下拉
 */
export const getNativePlaces = function () {
    return request({
        url: `/api/web/ba/common/nativePlaces`,
        method: 'post',
    })
}
/**
 * 获取籍贯下拉
 export const getGroups = function () {
    return request({
        url: `/api/web/ba/common/groups`,
        method: 'post',
    })
}*/
/**
 *  通用模块-element UI 页面加载
 * */
export const Loading = loading

/**
 * 通用模块-账户密码登录
 * */
export const login = data =>
    request({
        url: '/api/web/admin/login',
        method: 'post',
        data
    })


/**
 * 级联---》分组公共接口
 */
export const getGroupTree = data =>
    request({
        url: '/api/web/group/cascader',
        method: 'post',
        data
    })


/**
 * 通用模块-修改密码
 */
export const setUserPWD = data =>
    request({
        url: '/api/web/admin/save',
        method: 'put',
        data
    })

/**
 * 通用模块-根据token查询用户数据
 * */
export const getUserDataByToken = (data) =>
    request({
        url: '/api/web/menu/current',
        method: 'post',
        data

    })

/**
 * 通用模块-获取登录用户缓存信息
 * */
export const getUserDataFn = () =>
    request({
        url: '/api/web/admin/getUserSession',
        method: 'get',
    })

/**
 * 通用模块-获取当前管理菜单
 * */
export const getMenus = () =>
    axios({
        url: '/api/web/menu/current',
        method: 'post',
    })

/**
 * 通用模块 下载
 * */
export const XXXXXX = function (url, data) {
    const downloadForm = document.createElement('form')
    downloadForm.style = "display:none;";
    downloadForm.method = 'post';
    downloadForm.action = window.gConfig.uploadURL + url + '?' + qs.stringify(data) + "&token=" + sessionStorage.token;
    document.body.appendChild(downloadForm);
    downloadForm.submit()
    document.body.removeChild(downloadForm)
}
/**
 * 模板（拼接字符串）
 * */
export const XXXXX = function (data) {
    let url = "/oc/vehicle/speed?";
    url += data.endDate ? "&endDate=" + data.endDate : "";
    url += data.orgIdS ? "&orgIdS=" + data.orgIdS : "";
    url += data.startDate ? "&startDate=" + data.startDate : "";
    url += data.token ? "&token=" + data.token : "";
    return instance.get(url);
}

/**
 **************************************************************
 系统首页
 **************************************************************
 */
/**
 * 查询员工总数
 */
export const getCountPeople = () =>
    request({
        url: '/api/web/home/count/people',
        method: 'post',
    })

/**
 * 查询车辆总数
 */
export const getCountCar = () =>
    request({
        url: '/api/web/home/count/car',
        method: 'post',
    })


/**
 * 查询线路数量
 */
export const getCountRoute = () =>
    request({
        url: '/api/web/menu/count',
        method: 'post',
    })


/**
 * 查询驾驶员总数
 */
export const getCountDriver = () =>
    request({
        url: '/api/web/emp/count?type=2',
        method: 'post',
    })


/**
 * 查询线路和站点数量
 */
export const getRouteNameStation = () =>
    request({
        url: '/api/web/home/name/station',
        method: 'post',
    })

/**
 * 查询员工姓名和编号
 */
export const getPeopleInfo = () =>
    request({
        url: '/api/web/home/list/people',
        method: 'post',
    })

/**
 * 查询车牌号和燃料类型
 */
export const getVehiclesInfo = () =>
    request({
        url: '/api/web/home/list/vehicles',
        method: 'post',
    })

/**
 * 查询设备编号和设备类型
 */
export const getDevicesInfo = () =>
    request({
        url: '/api/web/home/list/device',
        method: 'post',
    })

/**
 * 查询设备类型及其数量
 */
export const getDeviceTypeCount = () =>
    request({
        url: '/api/web/home/device/type',
        method: 'post',
    })

/**
 * 查询车辆在线离线
 */
export const getCarLineCount = () =>
    request({
        url: '/api/web/home/car/online',
        method: 'post',
    })

/**
 **************************************************************
 分组管理
 **************************************************************
 */


/**
 **************************************************************
 线路管理
 **************************************************************
 */


/**
 **************************************************************
 站点管理
 **************************************************************
 */


/**
 *****************************************************************************************************************************************************************************
 车辆管理
 **************************************************************
 */

/**
 * 根据条件查询所有车辆
 */
export const getVehicleInfo1 = (query) =>
    request({
        url: `api/web/taxi/ba/vehicle/getList?${qs.stringify(query)}`,
        method: 'post',
    })

export const getVehicleInfo = data => {
    return request({
        url: "api/web/taxi/ba/vehicle/getList",
        method: 'post',
        data
    })
}

/**
 * 根据id删除车辆
 * @param data
 */
export const deleteVehicle = data => {
    return request({
        url: "api/web/taxi/ba/vehicle/deletes",
        method: 'post',
        data
    })
}


/**
 * 导出车辆模板
 * @param data
 */
export const exportTemplate = () => {
    return request({
        url: "api/web/taxi/ba/vehicle/exportTemplate",
        method: 'get',
    })
}


/**
 **************************************************************
 车辆管理结束
 **************************************************************
 */


/**
 * ****************************************************************************************************************************************************************************
 车型管理
 **************************************************************

 /**
 *获取所有车型
 */
export const getVehicleType = data => {
    return request({
        url: "api/web/taxi/ba/vehicleType/getList",
        method: 'post',
        data
    })
}


/**
 *根据id删除车辆
 */
export const deleteVehicleType = data => {
    return request({
        url: "api/web/taxi/ba/vehicleType/delete",
        method: 'post',
        data
    })
}

/**
 **********************************************************************************************************************************************************************************************************
 设备管理
 **************************************************************
 */
/**
 * 根据条件查询所有设备
 */
export const getDeviceInfo = query => {
    return request({
        url: "api/web/taxi/ba/device/getList",
        method: 'post',
        data: query
    })
}


/**
 * 删除设备
 * @param query
 */
export const deleteDevice
    = query => {
    return request({
        url: "api/web/taxi/ba/device/delete",
        method: 'post',
        data: query
    })
}


/**
 **************************************************************
 设备管理结束
 **************************************************************
 */


/**
 **********************************************************************************************************************************************************************************************************
 区域管理
 **************************************************************
 */


/**
 **************************************************************
 人员管理
 **************************************************************
 */


/**
 **************************************************************
 部门管理
 **************************************************************
 */
//部门查询
export const getDept = data =>
    request({
        url: '/api/web/dept/query',
        method: 'post',
        data
    })
//添加部门
export const addDept = data =>
    request({
        url: '/api/web/dept/add',
        method: 'post',
        data
    })
//删除部门
export const deleteDept = data =>
    request({
        url: '/api/web/dept/delete',
        method: 'post',
        data
    })

//编辑部门
export const editDept = data =>
    request({
        url: '/api/web/dept/edit',
        method: 'post',
        data
    })

//查询人员名称
export const getEpmInfo = data =>
    request({
        url: `/api/web/dept/empInfo`,
        method: 'post',
        data
    })

//查询本部门人员
export const getDeptEpmInfo = data =>
    request({
        url: `/api/web/dept/people`,
        method: 'post',
        data
    })

/**
 **************************************************************
 职务管理
 **************************************************************
 */

//职务查询
export const getDuty = data =>
    request({
        url: `/api/web/duty/page/query`,
        method: 'post',
        data
    })

//删除职务
export const deleteDuty = data =>
    request({
        url: `/api/web/duty/delete`,
        method: 'post',
        data
    })
//新增或修改职务
export const updateDuty = data =>
    request({
        url: `/api/web/duty/update`,
        method: 'post',
        data
    })

//查询所有部门
export const allDept = data =>
    request({
        url: `/api/web/duty/allDept`,
        method: 'post',
        data
    })
/**
 **************************************************************
 账号管理
 **************************************************************
 */
/**
 * 查询账号
 * @param data
 */
export const getAdminInfo = function (data) {
    return request({
        url: "/api/web/admin/query",
        method: 'post',
        data
    })
}

/**
 * 查询未绑定指定角色的全部账号
 * @param data
 */
export const getAdminNoRoleInfo = param => {
    return request({
        url: `/api/web/admin/nobling/query?id=${param.id}`,
        method: 'post',
        param
    })
}

/**
 * 删除账号
 * @param data
 */
export const deleteAdmin = data =>
    request({
        url: '/api/web/admin/del',
        method: 'post',
        data
    })
/**
 * 批量删除账号
 *
 */
export const deleteAdminAll = data => {
    return request({
        url: `/api/web/admin/deleteByList?adminIds=${data.adminIds}`,
        method: 'post',
        data
    })
}

/**
 * 导出账号
 */
export const exportAdminInfo = function (data) {
    let url = "/api/web/admin/export?";
    url += data.state ? "&state=" + data.state : "";
    url += data.roles ? "&roles=" + data.roles : "";
    url += data.loginId ? "&loginId=" + data.loginId : "";
    const downloadForm = document.createElement('form')
    downloadForm.style = "display:none;";
    downloadForm.method = 'post';
    downloadForm.action = window.gConfig.uploadURL + url + "&token=" + sessionStorage.token;
    downloadForm.submit()
    document.body.removeChild(downloadForm)
}
/**
 * 添加账号
 */
export const savaAdmin = data => {
    return request({
        url: "/api/web/admin/save",
        method: 'post',
        data
    })
}
/**
 * 查询账号登录日志
 */
export const getAdminLogsInfo = function (data) {
    return request({
        url: "/api/web/admin/log/query",
        method: 'post',
        data
    })
}

/**
 * 角色查询
 */
export const getRolesInFo = data =>
    request({
        url: `/api/web/role/query`,
        method: 'post',
        data
    })
/**
 **************************************************************
 角色管理
 **************************************************************
 */
// 获取角色集合
export const getRoles = data =>
    request({
        url: '/api/web/role/query',
        method: 'post',
        data
    })

// 删除角色
export const delRole = data =>
    request({
        url: '/api/web/role/del',
        method: 'post',
        data
    })

// 保存角色
export const saveRole = data =>
    request({
        url: '/api/web/role/save',
        method: 'post',
        data
    })

// 添加角色
export const addRole = data =>
    request({
        url: '/api/web/role/add',
        method: 'post',
        data
    })

// 更新角色
export const updateRole = data =>
    request({
        url: '/api/web/role/update',
        method: 'post',
        data
    })


// 获取该角色所拥有的系统
export const getRightOfSystem = data =>
    request({
        url: `/api/web/menu/system`,
        method: 'post',
        data
    })

// 获取平台所拥有的功能
export const getPlatformIds = data =>
    request({
        url: `/api/web/role/platformIds`,
        method: 'post',
        data
    })

// 获取平台所拥有的功能
export const getMenuIds = data =>
    request({
        url: `/api/web/role/menuIds`,
        method: 'post',
        data
    })
/**
 **************************************************************
 系统日志
 **************************************************************
 */

/**
 * 系统日志-平台登录日志
 */
export const getUserLongin = params => {
    return request({
        url: '/oc/user-long-in/pageUserLonin',
        method: 'get',
        params
    })
}

/**
 * 查询系统日志
 * @param data
 */
export const getLogsInfo = (data) => {
    return request({
        url: '/api/web/ba/log/select',
        method: 'post',
        data
    })
}

export const getCarInfo = params => {
    return request({
        url: '/api/web/station/vehicle',
        method: 'get',
        params
    })


}
/**
 **************************************************************
 菜单管理
 **************************************************************
 */

/**
 * 查询菜单
 * @param data
 */
export const getMenu = (data) => {
    return request({
        url: '/api/web/menu/page/query',
        method: 'post',
        data
    })
}
